package com.jingli.pile.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * 
 * @TableName sup_station_info
 */
@TableName(value ="sup_station_info")
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE)
public class SupStationInfo implements Serializable {
    /**
     * 
     */
    @TableId
    @JsonProperty(value = "StationID")
    private String stationId;

    /**
     * 行政区划代码，区县地区码
（6 位）+运营商 ID（9 位）
+充换电站 ID。
     */
    @JsonProperty(value = "StationUniqueNumber")
    private String stationUniqueNumber;

    /**
     * 基础设施运营商，场站属
主的组织机构代码九位
     */
    @JsonProperty(value = "EquipmentOwnerID")
    private String equipmentOwnerId;
    @JsonProperty(value = "StationName")
    private String stationName;
    /**
     * 运营商ID
     */
    @JsonProperty(value = "OperatorID")
    private String operatorId;

    /**
     * 国家代码
     */
    @JsonProperty(value = "CountryCode")
    private String countryCode;

    /**
     * 省市辖区的区县代码
     */
    @JsonProperty(value = "AreaCode")
    private String areaCode;

    /**
     * 填写内容为12位行政区划代
码，1- 6位为县及以上行政
区划代码，7-12 位
为县以下区划代码；参考地
址
     */
    @JsonProperty(value = "AreaCodeCountryside")
    private String areaCodeCountryside;

    /**
     * 充电站详细地址
     */
    @JsonProperty(value = "Address")
    private String address;

    /**
     * 站点类型：
1：公共
50：个人
100：公交（专用）
101：环卫（专用）
102：物流（专用）
103： 出租车（专用）
104：分时租赁（专用）
105：小区共享（专用）
106：单位（专用）
107：私人共享设备（专
用）
255：其它
     */
    @JsonProperty(value = "StationType")
    private Integer stationType;

    /**
     * 0：未知
1：建设中
5：关闭下线
6：维护中
50：正常使用
51：歇业
     */
    @JsonProperty(value = "StationStatus")
    private Integer stationStatus;

    /**
     * 站点经度
     */
    @JsonProperty(value = "StationLng")
    private Double stationLng;

    /**
     * 站点维度
     */
    @JsonProperty(value = "StationLat")
    private Double stationLat;

    @JsonProperty(value = "Construction")
    private Integer construction;

    /**
     * 站点电话，能够联系场站工
作人员进行协 助的电话
     */
    @JsonProperty(value = "StationTel")
    private String stationTel;

    /**
     * ⻋位数量，可停放充电的⻋
位总数
默认为0，表示未知
     */
    @JsonProperty(value = "ParkNums")
    private Integer parkNum;

    /**
     * 服务电话
     */
    @JsonProperty(value = "ServiceTel")
    private String serviceTel;

    /**
     * 站点指引，描述性文字，用
于引导车主找 到充电车
     */
    @JsonProperty(value = "SiteGuide")
    private String siteGuide;

    /**
     * 1：充电站
2：换电站
3：充换电一体站
     */
    @JsonProperty(value = "StationClassification")
    private Integer stationClassification;

    /**
     * 1：通用（可为 3 种及 3 种
以上的换电车型进行换电的
换电站）
2：非通用
注：站点分类为 2 或 3 时，
此字段为必填项；站点分类
     */
    @JsonProperty(value = "GeneralApplicationType")
    private Integer generalApplicationType;

    /**
     * 服务车型描
述
     */
    @JsonProperty(value = "MatchCars")
    @TableField(exist = false)
    private List<String> matchCars;

    /**
     * 0：免费
1：不免费
2：限时免费停车
3：充电限时减免
255：参考场地实际收费标
准
     */
    @JsonProperty(value = "ParkType")
    private Integer parkType;

    /**
     * 点照片：充电设备照片，
充电车位照片，停车场入口
照片
     */
    @JsonProperty(value = "Pictures")
    @TableField(exist = false)
    private List<String> pictures;

    /**
     * 车位楼层及数量信息
     */
    @JsonProperty(value = "ParkInfo")
    private String parkInfo;

    /**
     * 营业时间描述
     */
    @JsonProperty(value = "BusineHours")
    private String busineHours;

    /**
     * 充电电费描述，24小时
内可多段，每段大于等
于15分钟，标准格式：
     */
    @JsonProperty(value = "ElectricityFee")
    private String electricityFee;

    /**
     * 固定格式文本
     */
    @JsonProperty(value = "SwapFee")
    private String swapFee;

    /**
     * 服务费
     */
    @JsonProperty(value = "ServiceFee")
    private String serviceFee;

    /**
     * 停车描述，24小时内可多段
。rules : 车费规则描述
     */
    @JsonProperty(value = "ParkFee")
    private String parkFee;

    /**
     * 7*24小时
营业
     */
    @JsonProperty(value = "RoundTheClock")
    private Integer roundTheClock;

    /**
     * 支付方式：刷卡、线上、
现金。
电子钱包类卡位刷卡，
身份鉴权卡、微信/支付
宝、APP为线上
     */
    @JsonProperty(value = "Payment")
    private String payment;

    /**
     * 是否支持预约：
0：不支持
1：支持
默认为0
     */
    @JsonProperty(value = "SupportOrder")
    private Integer supportOrder;

    /**
     * 备注
     */
    @JsonProperty(value = "Remark")
    private String remark;

    /**
     * 仓位数量
     */
    @JsonProperty(value = "PositionNum")
    private Integer positionNum;

    /**
     * 整站配电容
量
     */
    @JsonProperty(value = "RatedCapacity")
    private Integer ratedCapacity;

    /**
     * 通道类型
     */
    @JsonProperty(value = "ChannelType")
    private Integer channelType;

    /**
     * 电费类型
     */
    @JsonProperty(value = "ElectricityType")
    private Integer electricityType;

    /**
     * 报装类型
     */
    @JsonProperty(value = "BusinessExpandType")
    private Integer businessExpandType;

    /**
     * 报装电源容
量
     */
    @JsonProperty(value = "Capacity")
    private Double capacity;

    /**
     * 站点额定总
功率
     */
    @JsonProperty(value = "RatedPower")
    private Double ratedPower;

    /**
     * 峰谷分时
     */
    @JsonProperty(value = "PeriodFee")
    private Integer periodFee;

    /**
     * 正式投运时
间
     */
    @JsonProperty(value = "OfficialRunTime")
    private String officialRunTime;

    /**
     * 充换电站方
位
     */
    @JsonProperty(value = "StationOrientation")
    private Integer stationOrientation;

    /**
     * 充电场站建设用地面积
     */
    @JsonProperty(value = "StationArea")
    private Double stationArea;

    /**
     * 充换电站人
工值守
     */
    @JsonProperty(value = "HavePerson")
    private Integer havePerson;

    /**
     * 视频监控配
套情况
     */
    @JsonProperty(value = "VideoMonitor")
    private Integer videoMonitor;

    /**
     * 周边配套设
施
     */
    @JsonProperty(value = "SupportingFacilities")
    private String supportingFacilities;

    /**
     * 是否有小票
机
     */
    @JsonProperty(value = "PrinterFlag")
    private Integer printerFlag;

    /**
     * 是否有道闸
     */
    @JsonProperty(value = "BarrierFlag")
    private Integer barrierFlag;

    /**
     * 是否有地锁
     */
    @JsonProperty(value = "ParkingLockFlag")
    private Integer parkingLockFlag;

    /**
     * 换电计费类
型
     */
    @JsonProperty(value = "ChangeType")
    private String changeType;

    /**
     * 换电计算公
式
     */
    @JsonProperty(value = "Expression")
    private String expression;

    /**
     * 充电设备列
表
     */
    @JsonProperty(value = "EquipmentInfos")
    private List<SupEquipmentInfo> equipmentInfos;

    /**
     * 建站时间
     */
    @JsonProperty(value = "BuildTime")
    private String buildTime;

    private Date lastUpdateTime;

    private Integer plotId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 
     */
    public String getStationId() {
        return stationId;
    }

    /**
     * 
     */
    public void setStationId(String stationId) {
        this.stationId = stationId;
    }

    /**
     * 行政区划代码，区县地区码
（6 位）+运营商 ID（9 位）
+充换电站 ID。
     */
    public String getStationUniqueNumber() {
        return stationUniqueNumber;
    }

    /**
     * 行政区划代码，区县地区码
（6 位）+运营商 ID（9 位）
+充换电站 ID。
     */
    public void setStationUniqueNumber(String stationUniqueNumber) {
        this.stationUniqueNumber = stationUniqueNumber;
    }

    /**
     * 基础设施运营商，场站属
主的组织机构代码九位
     */
    public String getEquipmentOwnerId() {
        return equipmentOwnerId;
    }

    /**
     * 基础设施运营商，场站属
主的组织机构代码九位
     */
    public void setEquipmentOwnerId(String equipmentOwnerId) {
        this.equipmentOwnerId = equipmentOwnerId;
    }

    /**
     * 运营商ID
     */
    public String getOperatorId() {
        return operatorId;
    }

    /**
     * 运营商ID
     */
    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    /**
     * 国家代码
     */
    public String getCountryCode() {
        return countryCode;
    }

    /**
     * 国家代码
     */
    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    /**
     * 省市辖区的区县代码
     */
    public String getAreaCode() {
        return areaCode;
    }

    /**
     * 省市辖区的区县代码
     */
    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    /**
     * 填写内容为12位行政区划代
码，1- 6位为县及以上行政
区划代码，7-12 位
为县以下区划代码；参考地
址
     */
    public String getAreaCodeOuntryside() {
        return areaCodeCountryside;
    }

    /**
     * 填写内容为12位行政区划代
码，1- 6位为县及以上行政
区划代码，7-12 位
为县以下区划代码；参考地
址
     */
    public void setAreaCodeOuntryside(String areaCodeOuntryside) {
        this.areaCodeCountryside = areaCodeOuntryside;
    }

    /**
     * 充电站详细地址
     */
    public String getAddress() {
        return address;
    }

    /**
     * 充电站详细地址
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * 站点类型：
1：公共
50：个人
100：公交（专用）
101：环卫（专用）
102：物流（专用）
103： 出租车（专用）
104：分时租赁（专用）
105：小区共享（专用）
106：单位（专用）
107：私人共享设备（专
用）
255：其它
     */
    public Integer getStationType() {
        return stationType;
    }

    /**
     * 站点类型：
1：公共
50：个人
100：公交（专用）
101：环卫（专用）
102：物流（专用）
103： 出租车（专用）
104：分时租赁（专用）
105：小区共享（专用）
106：单位（专用）
107：私人共享设备（专
用）
255：其它
     */
    public void setStationType(int stationType) {
        this.stationType = stationType;
    }

    /**
     * 0：未知
1：建设中
5：关闭下线
6：维护中
50：正常使用
51：歇业
     */
    public Integer getStationStatus() {
        return stationStatus;
    }

    /**
     * 0：未知
1：建设中
5：关闭下线
6：维护中
50：正常使用
51：歇业
     */
    public void setStationStatus(int stationStatus) {
        this.stationStatus = stationStatus;
    }

    /**
     * 站点经度
     */
    public Double getStationLng() {
        return stationLng;
    }

    /**
     * 站点经度
     */
    public void setStationLng(Double stationLng) {
        this.stationLng = stationLng;
    }

    /**
     * 站点维度
     */
    public Double getStationLat() {
        return stationLat;
    }

    /**
     * 站点维度
     */
    public void setStationLat(Double stationLat) {
        this.stationLat = stationLat;
    }

    /**
     * 站点电话，能够联系场站工
作人员进行协 助的电话
     */
    public String getStationTel() {
        return stationTel;
    }

    /**
     * 站点电话，能够联系场站工
作人员进行协 助的电话
     */
    public void setStationTel(String stationTel) {
        this.stationTel = stationTel;
    }

    /**
     * ⻋位数量，可停放充电的⻋
位总数
默认为0，表示未知
     */
    public Integer getParkNum() {
        return parkNum;
    }

    /**
     * ⻋位数量，可停放充电的⻋
位总数
默认为0，表示未知
     */
    public void setParkNum(Integer parkNum) {
        this.parkNum = parkNum;
    }

    /**
     * 服务电话
     */
    public String getServiceTel() {
        return serviceTel;
    }

    /**
     * 服务电话
     */
    public void setServiceTel(String serviceTel) {
        this.serviceTel = serviceTel;
    }

    /**
     * 站点指引，描述性文字，用
于引导车主找 到充电车
     */
    public String getSiteGuide() {
        return siteGuide;
    }

    /**
     * 站点指引，描述性文字，用
于引导车主找 到充电车
     */
    public void setSiteGuide(String siteGuide) {
        this.siteGuide = siteGuide;
    }

    /**
     * 1：充电站
2：换电站
3：充换电一体站
     */
    public Integer getStationClassification() {
        return stationClassification;
    }

    /**
     * 1：充电站
2：换电站
3：充换电一体站
     */
    public void setStationClassification(Integer stationClassification) {
        this.stationClassification = stationClassification;
    }

    /**
     * 1：通用（可为 3 种及 3 种
以上的换电车型进行换电的
换电站）
2：非通用
注：站点分类为 2 或 3 时，
此字段为必填项；站点分类
     */
    public Integer getGeneralApplicationType() {
        return generalApplicationType;
    }

    /**
     * 1：通用（可为 3 种及 3 种
以上的换电车型进行换电的
换电站）
2：非通用
注：站点分类为 2 或 3 时，
此字段为必填项；站点分类
     */
    public void setGeneralApplicationType(Integer generalApplicationType) {
        this.generalApplicationType = generalApplicationType;
    }

    /**
     * 服务车型描
述
     */
    public List<String> getMatchCars() {
        return matchCars;
    }

    /**
     * 服务车型描
述
     */
    public void setMatchCars(String matchCars) {
        List<String> strs = new ArrayList<>();
        String[] split = matchCars.split(",");
        for (int i = 0; i < split.length; i++) {
            strs.add(split[i]);
        }
        this.matchCars = strs;
    }

    /**
     * 0：免费
1：不免费
2：限时免费停车
3：充电限时减免
255：参考场地实际收费标
准
     */
    public Integer getParkType() {
        return parkType;
    }

    /**
     * 0：免费
1：不免费
2：限时免费停车
3：充电限时减免
255：参考场地实际收费标
准
     */
    public void setParkType(Integer parkType) {
        this.parkType = parkType;
    }

    /**
     * 点照片：充电设备照片，
充电车位照片，停车场入口
照片
     */
    public List<String> getPictures() {
        return pictures;
    }

    /**
     * 点照片：充电设备照片，
充电车位照片，停车场入口
照片
     */
    public void setPictures(String pictures) {
        String[] split = pictures.split(",");
        this.pictures = new ArrayList<>();
    }

    /**
     * 车位楼层及数量信息
     */
    public String getParkInfo() {
        return parkInfo;
    }

    /**
     * 车位楼层及数量信息
     */
    public void setParkInfo(String parkInfo) {
        this.parkInfo = parkInfo;
    }

    /**
     * 营业时间描述
     */
    public String getBusineHours() {
        return busineHours;
    }

    /**
     * 营业时间描述
     */
    public void setBusineHours(String busineHours) {
        this.busineHours = busineHours;
    }

    /**
     * 充电电费描述，24小时
内可多段，每段大于等
于15分钟，标准格式：
     */
    public String getElectricityFee() {
        return electricityFee;
    }

    /**
     * 充电电费描述，24小时
内可多段，每段大于等
于15分钟，标准格式：
     */
    public void setElectricityFee(String electricityFee) {
        this.electricityFee = electricityFee;
    }

    /**
     * 固定格式文本
     */
    public String getSwapFee() {
        return swapFee;
    }

    /**
     * 固定格式文本
     */
    public void setSwapFee(String swapFee) {
        this.swapFee = swapFee;
    }

    /**
     * 服务费
     */
    public String getServiceFee() {
        return serviceFee;
    }

    /**
     * 服务费
     */
    public void setServiceFee(String serviceFee) {
        this.serviceFee = serviceFee;
    }

    /**
     * 停车描述，24小时内可多段
。rules : 车费规则描述
     */
    public String getParkFee() {
        return parkFee;
    }

    /**
     * 停车描述，24小时内可多段
。rules : 车费规则描述
     */
    public void setParkFee(String parkFee) {
        this.parkFee = parkFee;
    }

    /**
     * 7*24小时
营业
     */
    public Integer getRoundTheClock() {
        return roundTheClock;
    }

    /**
     * 7*24小时
营业
     */
    public void setRoundTheClock(Integer roundTheClock) {
        this.roundTheClock = roundTheClock;
    }

    /**
     * 支付方式：刷卡、线上、
现金。
电子钱包类卡位刷卡，
身份鉴权卡、微信/支付
宝、APP为线上
     */
    public String getPayment() {
        return payment;
    }

    /**
     * 支付方式：刷卡、线上、
现金。
电子钱包类卡位刷卡，
身份鉴权卡、微信/支付
宝、APP为线上
     */
    public void setPayment(String payment) {
        this.payment = payment;
    }

    /**
     * 是否支持预约：
0：不支持
1：支持
默认为0
     */
    public Integer getSupportOrder() {
        return supportOrder;
    }

    /**
     * 是否支持预约：
0：不支持
1：支持
默认为0
     */
    public void setSupportOrder(Integer supportOrder) {
        this.supportOrder = supportOrder;
    }

    /**
     * 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 仓位数量
     */
    public Integer getPositionNum() {
        return positionNum;
    }

    /**
     * 仓位数量
     */
    public void setPositionNum(Integer positionNum) {
        this.positionNum = positionNum;
    }

    /**
     * 整站配电容
量
     */
    public Integer getRatedCapacity() {
        return ratedCapacity;
    }

    /**
     * 整站配电容
量
     */
    public void setRatedCapacity(Integer ratedCapacity) {
        this.ratedCapacity = ratedCapacity;
    }

    /**
     * 通道类型
     */
    public Integer getChannelType() {
        return channelType;
    }

    /**
     * 通道类型
     */
    public void setChannelType(Integer channelType) {
        this.channelType = channelType;
    }

    /**
     * 电费类型
     */
    public Integer getElectricityType() {
        return electricityType;
    }

    /**
     * 电费类型
     */
    public void setElectricityType(Integer electricityType) {
        this.electricityType = electricityType;
    }

    /**
     * 报装类型
     */
    public Integer getBusinessExpandType() {
        return businessExpandType;
    }

    /**
     * 报装类型
     */
    public void setBusinessExpandType(Integer businessExpandType) {
        this.businessExpandType = businessExpandType;
    }

    /**
     * 报装电源容
量
     */
    public Double getCapacity() {
        return capacity;
    }

    /**
     * 报装电源容
量
     */
    public void setCapacity(Double capacity) {
        this.capacity = capacity;
    }

    /**
     * 站点额定总
功率
     */
    public Double getRatedPower() {
        return ratedPower;
    }

    /**
     * 站点额定总
功率
     */
    public void setRatedPower(Double ratedPower) {
        this.ratedPower = ratedPower;
    }

    /**
     * 峰谷分时
     */
    public Integer getPeriodFee() {
        return periodFee;
    }

    /**
     * 峰谷分时
     */
    public void setPeriodFee(Integer periodFee) {
        this.periodFee = periodFee;
    }

    /**
     * 正式投运时
间
     */
    public String getOfficialRunTime() {
        return officialRunTime;
    }

    /**
     * 正式投运时
间
     */
    public void setOfficialRunTime(String officialRunTime) {
        this.officialRunTime = officialRunTime;
    }

    /**
     * 充换电站方
位
     */
    public Integer getStationOrientation() {
        return stationOrientation;
    }

    /**
     * 充换电站方
位
     */
    public void setStationOrientation(Integer stationOrientation) {
        this.stationOrientation = stationOrientation;
    }

    /**
     * 充电场站建设用地面积
     */
    public Double getStationArea() {
        return stationArea;
    }

    /**
     * 充电场站建设用地面积
     */
    public void setStationArea(Double stationArea) {
        this.stationArea = stationArea;
    }

    /**
     * 充换电站人
工值守
     */
    public Integer getHavePerson() {
        return havePerson;
    }

    /**
     * 充换电站人
工值守
     */
    public void setHavePerson(Integer havePerson) {
        this.havePerson = havePerson;
    }

    /**
     * 视频监控配
套情况
     */
    public Integer getVideoMonitor() {
        return videoMonitor;
    }

    /**
     * 视频监控配
套情况
     */
    public void setVideoMonitor(Integer videoMonitor) {
        this.videoMonitor = videoMonitor;
    }

    /**
     * 周边配套设
施
     */
    public String getSupportingFacilities() {
        return supportingFacilities;
    }

    /**
     * 周边配套设
施
     */
    public void setSupportingFacilities(String supportingFacilities) {
        this.supportingFacilities = supportingFacilities;
    }

    /**
     * 是否有小票
机
     */
    public Integer getPrinterFlag() {
        return printerFlag;
    }

    /**
     * 是否有小票
机
     */
    public void setPrinterFlag(Integer printerFlag) {
        this.printerFlag = printerFlag;
    }

    /**
     * 是否有道闸
     */
    public Integer getBarrierFlag() {
        return barrierFlag;
    }

    /**
     * 是否有道闸
     */
    public void setBarrierFlag(Integer barrierFlag) {
        this.barrierFlag = barrierFlag;
    }

    /**
     * 是否有地锁
     */
    public Integer getParkingLockFlag() {
        return parkingLockFlag;
    }

    /**
     * 是否有地锁
     */
    public void setParkingLockFlag(Integer parkingLockFlag) {
        this.parkingLockFlag = parkingLockFlag;
    }

    /**
     * 换电计费类
型
     */
    public String getChangeType() {
        return changeType;
    }

    /**
     * 换电计费类
型
     */
    public void setChangeType(String changeType) {
        this.changeType = changeType;
    }

    /**
     * 换电计算公
式
     */
    public String getExpression() {
        return expression;
    }

    /**
     * 换电计算公
式
     */
    public void setExpression(String expression) {
        this.expression = expression;
    }

    /**
     * 充电设备列
表
     */
    public List<SupEquipmentInfo> getEquipmentInfos() {
        return equipmentInfos;
    }

    /**
     * 充电设备列
表
     */
    public void setEquipmentInfos(List<SupEquipmentInfo> equipmentInfos) {
        this.equipmentInfos = equipmentInfos;
    }

    /**
     * 建站时间
     */
    public String getBuildTime() {
        return buildTime;
    }

    /**
     * 建站时间
     */
    public void setBuildTime(String buildTime) {
        this.buildTime = buildTime;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public String getAreaCodeCountryside() {
        return areaCodeCountryside;
    }

    public void setAreaCodeCountryside(String areaCodeCountryside) {
        this.areaCodeCountryside = areaCodeCountryside;
    }

    public Integer getConstruction() {
        return construction;
    }

    public void setConstruction(Integer construction) {
        this.construction = construction;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public void setStationType(Integer stationType) {
        this.stationType = stationType;
    }

    public void setStationStatus(Integer stationStatus) {
        this.stationStatus = stationStatus;
    }

    public Integer getPlotId() {
        return plotId;
    }

    public void setPlotId(Integer plotId) {
        this.plotId = plotId;
    }
}